package zhongbo.java.air.airflightpath.service;

import zhongbo.java.air.common.vo.PageVo;

/**
 * 航线轨迹服务接口
 *
 * @author 朱星谊
 * @since 2025-4-2 10:09:09
 */
public interface IAirFightPathService<AirFlightPath> {
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    AirFlightPath queryById(String id);

    /**
     * 分页查询
     *
     * @param pageNumber 页码
     * @param pageSize 每页大小
     * @return 分页查询结果
     */
    PageVo<AirFlightPath> queryByPage(Integer pageNumber, Integer pageSize);


    /**
     * 分页查询
     *
     * @param pageNumber 页码
     * @param pageSize   每页大小
     * @param icao  查询icao
     * @param startTime  开始时间
     * @param endTime  结束时间
     * @param keyword  查询字段查询关键词
     * @param fields   查询关键词
     * @param oderByField  排序字段
     * @param orderByAsc  是否排序
     *
     * @return 分页查询结果
     */
    PageVo<AirFlightPath> queryByPageTime(Integer pageNumber, Integer pageSize
            , String icao, String startTime, String endTime
            , String keyword, String fields
            , String oderByField, Boolean orderByAsc);

    /**
     * 新增数据
     *
     * @param airFightPath 实例对象
     * @return 实例对象
     */
    AirFlightPath insert(AirFlightPath airFightPath);

    /**
     * 修改数据
     *
     * @param airFlightPath 实例对象
     * @return
     */
    zhongbo.java.air.airflightpath.model.AirFlightPath update(AirFlightPath airFlightPath);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     */
    void deleteById(String id);
}
